return {
  -- 通过优化vim.ui.select和vim.ui.input接口，显著提升了UI界面的美观度和功能性。它集成了Telescope、FZF等多种后端，为用户提供了灵活的界面定制选项。
  "stevearc/dressing.nvim",
  enabled = true,
  config = function()
    require("dressing").setup {}
    --[[
    require("dressing").setup {
      input = {
        -- 设置为false以禁用vim.ui.input实现
        enabled = true,

        -- 默认提示字符串
        default_prompt = "输入",

        -- 从提示中删除尾随的`:`
        trim_prompt = true,

        -- 可以是'left'、'right'或'center'
        title_pos = "left",

        -- 当为true时，输入将从插入模式开始
        start_in_insert = true,

        -- 这些参数传递给nvim_open_win
        border = "rounded",
        -- 'editor'和'win'默认居中
        relative = "cursor",

        -- 这些可以是整数或0到1之间的浮点数（例如0.4表示40%）
        prefer_width = 40,
        width = nil,
        -- min_width和max_width可以是混合类型的列表
        -- min_width = {20, 0.2}表示"20列或总宽度的20%中的较大者"
        max_width = { 140, 0.9 },
        min_width = { 20, 0.2 },

        buf_options = {},
        win_options = {
          -- 禁用换行
          wrap = false,
          -- 文本超出窗口时的指示器
          list = true,
          listchars = "precedes:…,extends:…",
          -- 增加此值以在文本滚动出窗口时获得更多上下文
          sidescrolloff = 0,
          -- 调整仅dressing窗口高亮的常见方法是在配置中提供winhighlight选项
          winhighlight = "NormalFloat:DiagnosticError",
        },

        -- 设置为`false`以禁用
        mappings = {
          n = {
            ["<Esc>"] = "关闭",
            ["<CR>"] = "确认",
          },
          i = {
            ["<C-c>"] = "关闭",
            ["<CR>"] = "确认",
            ["<Up>"] = "历史上一个",
            ["<Down>"] = "历史下一个",
          },
        },

        override = function(conf)
          -- 这是将传递给nvim_open_win的配置
          -- 在这里更改值以自定义布局
          return conf
        end,

        -- 参见 :help dressing_get_config
        get_config = nil,
      },
      select = {
        -- 设置为false以禁用vim.ui.select实现
        enabled = true,

        -- 首选vim.select实现的优先级列表
        backend = { "telescope", "fzf_lua", "fzf", "builtin", "nui" },

        -- 从提示中删除尾随的`:`
        trim_prompt = true,

        -- telescope选择器的选项
        -- 这些直接传递给telescope选择器。可以像这样使用：
        -- telescope = require('telescope.themes').get_ivy({...})
        telescope = nil,

        -- fzf选择器的选项
        fzf = {
          window = {
            width = 0.5,
            height = 0.4,
          },
        },

        -- fzf-lua的选项
        fzf_lua = {
          -- winopts = {
          --   height = 0.5,
          --   width = 0.5,
          -- },
        },

        -- nui菜单的选项
        nui = {
          position = "50%",
          size = nil,
          relative = "editor",
          border = {
            style = "rounded",
          },
          buf_options = {
            swapfile = false,
            filetype = "DressingSelect",
          },
          win_options = {
            winblend = 0,
          },
          max_width = 80,
          max_height = 40,
          min_width = 40,
          min_height = 10,
        },

        -- 内置选择器的选项
        builtin = {
          -- 显示选项的数字并设置键映射
          show_numbers = true,
          -- 这些传递给nvim_open_win
          border = "rounded",
          -- 'editor'和'win'默认居中
          relative = "editor",

          buf_options = {},
          win_options = {
            cursorline = true,
            cursorlineopt = "both",
          },
          -- 这些可以是整数或0到1之间的浮点数（例如，0.4表示40%）
          -- min_和max_选项可以是混合类型的列表。
          -- max_width = {140, 0.8} 意味着"140列或总宽度的80%中的较小值"
          width = nil,
          max_width = { 140, 0.8 },
          min_width = { 40, 0.2 },
          height = nil,
          max_height = 0.9,
          min_height = { 10, 0.2 },

          -- 设置为`false`以禁用
          mappings = {
            ["<Esc>"] = "关闭",
            ["<C-c>"] = "关闭",
            ["<CR>"] = "确认",
          },

          override = function(conf)
            -- 这是将传递给nvim_open_win的配置。
            -- 在这里更改值以自定义布局
            return conf
          end,
        },

        -- 用于覆盖format_item。参见 :help dressing-format
        format_item_override = {},

        -- 参见 :help dressing_get_config
        -- get_config = nil,
        get_config = function(opts)
          if opts.kind == "codeaction" then
            return {
              backend = "nui",
              nui = {
                relative = "cursor",
                max_width = 40,
              },
            }
          end
        end,
      },
    }

    ]]

    -- -- 实例
    -- vim.ui.select({ "苹果", "香蕉", "芒果" }, {
    --   prompt = "标题",
    --   telescope = require("telescope.themes").get_cursor(),
    -- }, function(selected) end)
  end,
}
